// https://leetcode-cn.com/problems/subsets/
// 78. 子集
/*
给你一个整数数组 nums ，数组中的元素 互不相同 。返回该数组所有可能的子集（幂集）。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1：

输入：nums = [1,2,3]
输出：[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
示例 2：

输入：nums = [0]
输出：[[],[0]]
*/
var subsets = function (nums) {
  const t = []
  const ans = []
  const len = nums.length
  const dfs = (cur) => {
    if (cur === len) {
      console.log('--p', cur, t)
      ans.push(t.slice())
      return
    }
    t.push(nums[cur])
    console.log('--1', cur, t)
    dfs(cur + 1)
    t.pop()
    console.log('--2', cur, t)
    dfs(cur + 1)
  }
  dfs(0)
  return ans
}
subsets([0,1,2])